在寫程式的過程中,錯誤一定會發生,例如使用者輸入了不正確的數字、檔案不存在、網路連線中斷…
如果我們沒有處理這些狀況,程式可能會直接「爆掉」並結束執行。為了避免這種狀況,C# 提供了 例外處理 (Exception Handling) 機制,讓我們能 捕捉錯誤並妥善處理,而不是讓程式崩潰。基本語法:try-catch-finally,如下:
try
{
// 可能發生例外的程式碼
}
catch (Exception ex)
{
// 當例外發生時要處理的程式碼
}
finally
{
// 無論有沒有發生例外,最後一定會執行的程式碼(可選)
}
C# 語言的例外處理功能可以幫助你處理程式執行時發生的任何非預期或特殊狀況。例外處理使用 try、catch 和 finally 關鍵字:
在許多情況下,例外可能並不是由你的程式碼直接呼叫的方法拋出的,而是由呼叫堆疊中更深層的方法拋出。當例外發生時:
public class ExceptionTest
{
static double SafeDivision(double x, double y)
{
if (y == 0)
throw new DivideByZeroException();
return x / y;
}
public static void Main()
{
// Input for test purposes. Change the values to see
// exception handling behavior.
double a = 98, b = 0;
double result;
try
{
result = SafeDivision(a, b);
Console.WriteLine($"{a} divided by {b} = {result}");
}
catch (DivideByZeroException)
{
Console.WriteLine("Attempted divide by zero.");
}
}
}